package com.itheima.service;

import com.itheima.common.R;
import com.itheima.pojo.Orders;
import com.itheima.vo.OrderAndDetailVO;
import com.itheima.vo.OrderListVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author 小帅蓝
 * @Date 2022/6/20 20:49
 */
public interface OrdersService {

    /**
     * 查询订单总数
     *
     * @param number 订单号
     * @param userId 下单用户
     * @return 总数
     */
    Integer getCount(String number, String userId);

    /**
     * 订单分页查询
     *
     * @param beginTime beginTime
     * @param endTime   endTime
     * @param number    订单号
     * @param page      起始页
     * @param pageSize  每页显示条数
     * @return 订单信息集合
     */
    List<Orders> queryAll(String beginTime,
                          String endTime,
                          String number,
                          Integer page,
                          Integer pageSize);

    /**
     * 更新订单状态
     *
     * @param orders 订单
     * @return boolean
     */
    boolean updateStatus(Orders orders);

    /**
     * 提交订单 （移动端）
     *
     * @param orders 订单
     */
    @Transactional(rollbackFor = Exception.class)
    void insertOrder(Orders orders);

    /**
     * 订单列表 （移动端）
     *
     * @param page     起始页
     * @param pageSize 每页显示条数
     * @return List<OrderListVO>
     */
    List<OrderListVO> getOrderAndDetailsList(Integer page, Integer pageSize);

}
